var request = require('superagent');
var should = require('should');
var Joueur = require('../libs/joueur.js');
var Carte_Personnage = require('../libs/carte_Personnage.js');
var Voleur = require('../libs/voleur.js');

describe('Test des fonctions du voleur', function(){
	
	var jou_joueur1;
	var jou_joueur2;
	var crtp_voleur;
	var crtp_carte;

	beforeEach(function(){
		// creation d'une carte quelconque
		crtp_carte = new Carte_Personnage("carte1");
		// creation du joueur 1
		joueur1 = new Joueur("Joueur1");
		joueur1.addOr(2);
		crtp_carte.setJoueur(joueur1);
		// creation de la carte voleur
		crtp_voleur = new Voleur();
		joueur2 = new Joueur("Joueur2");
		joueur2.addOr(2);
		// affectation de la carte au joueur 2
		crtp_voleur.setJoueur(joueur2);
	})
	
	describe('Test Vol', function(){
		it('#Vole',function(done){
			crtp_carte.estVole().should.be.false;
			crtp_voleur.estVole().should.be.false;
			crtp_voleur.vole(crtp_carte);
			crtp_carte.estVole().should.be.true;
			crtp_voleur.estVole().should.be.false;
			// c'est au jouer2 de jouer
			crtp_carte.init();
			crtp_carte.getJoueur().getOr().should.equal(0);
			crtp_voleur.getJoueur().getOr().should.equal(4);
			done();
		})
	})
	
	describe('Test voler un mort', function(){
		it('#VolMort',function(done){
			crtp_carte.setTue();
			crtp_carte.estTue().should.be.true;
			crtp_voleur.estTue().should.be.false;
			(function () {
				crtp_voleur.vole(crtp_carte);
				}).should.throw('Vole exception : Impossible de voler un mort');
			done();
		})
	})
	
	describe('Test voler un joueur ayant deja joue', function(){
		it('#VolAyantJoue',function(done){
			crtp_carte.getJoueur().setAJoue();
			crtp_carte.getJoueur().getAJoue().should.be.true;
			(function () {
				crtp_voleur.vole(crtp_carte);
				}).should.throw('Vole exception : Impossible de voler un joueur ayant deja joue');
			done();
		})
	})

});